<?PHP if( ! defined( 'OS_PATH' ) ) exit; ?>
<style>
#OS_ERROR_REPORT{display:block; float:left; overflow:visible; position:fixed; left:0; top:0; right:0; width:100%; _position:absolute; _width:expression(documentElement.scrollWidth - 20 + "px"); _top:expression(documentElement.scrollTop + "px"); background:#F8F8F8; border-bottom:1px solid #EFEFEF; line-height:30px; font-family:Arial; font-size:16px; color:#CC0F16; font-weight:bold; z-index:999999; -webkit-box-shadow:0px 2px 4px #999; -moz-box-shadow:0px 2px 4px #999; box-shadow:0px 2px 4px #999;}
#OS_ERROR_REPORT *{cursor:default;}
#OS_ERROR_REPORT blink, #OS_ERROR_REPORT span{display:block; float:left;}
#OS_ERROR_REPORT blink{margin-left:15px;}
#OS_ERROR_REPORT #OS_ERROR_PAGE{margin-left:10px;}
#OS_ERROR_REPORT #OS_ERROR_PAGE, #OS_ERROR_REPORT #OS_ERROR_SUM{font-weight:normal; font-size:12px;}
#OS_ERROR_REPORT #OS_ERROR_MORE{margin:0 5px 0 15px; font-weight:normal; font-size:14px; cursor:pointer; color:#0174A7;}
#OS_ERROR_MESSAGE_LIST{height:20px; margin:5px 0 0 0; padding:0; overflow:hidden; display:block; float:left;}
#OS_ERROR_MESSAGE_LIST li{display:block; margin:0; padding:0; height:20px; overflow:hidden; line-height:20px; font-size:12px; font-weight:normal;}
#OS_ERROR_MESSAGE_LIST li address{display:inline; color:#444;}
#OS_ERROR_REPORT #OS_INFORMATION{float:right; line-height:30px; color:#999; font-size:10px; width:100px; font-weight:normal;}
#OS_ERROR_REPORT #OS_INFORMATION sup{font-size:8px;}
</style>
<div id="OS_ERROR_REPORT">
	<span id="OS_INFORMATION"><b>O</b>pen<b>S</b>tation <sup><?=OS_VER?></sup></span>
	<blink>WARNING !</blink>
	<span id="OS_ERROR_PAGE">1</span><span style="font-weight:normal; margin:0 3px 0 3px;">/</span><span id="OS_ERROR_SUM"><?=count( Cache :: get( 'SERVER.ERROR' ) )?></span>
	<span id="OS_ERROR_MORE">[ + ]</span>
	<ul id="OS_ERROR_MESSAGE_LIST">
<?PHP
foreach( Cache :: get( 'SERVER.ERROR' ) as $i => $e ) {
    if( isset( $e[ 'FILE' ] ) && isset( $e[ 'LINE' ] ) ) {
	    echo '<li>[ E : ', ( $i + 1 ), ' ]&nbsp;&nbsp;&nbsp;&nbsp;', $e[ 'MESSAGE' ], ' in <address>', $e[ 'FILE' ], '</address> on line ', $e[ 'LINE' ], "</li>\n";
    } else if( isset( $e[ 'TYPE' ] ) ) {
        echo '<li>[ ' . $e[ 'TYPE' ] . ':', ( $i + 1 ), ' ]&nbsp;&nbsp;&nbsp;&nbsp;', $e[ 'MESSAGE' ], "</li>\n";
    }
}
?>
	</ul>
</div>
<script type="text/javascript">
var OS_ERROR_REPORT_OBJ = {
	'PAGE' : document.getElementById( 'OS_ERROR_PAGE' ),
	'SUM' : document.getElementById( 'OS_ERROR_SUM' ),
	'MSG' : document.getElementById( 'OS_ERROR_MESSAGE_LIST' ),
	'MORE' : document.getElementById( 'OS_ERROR_MORE' )
};
var OS_ERROR_REPORT_VAR = {
	'PAGE' : parseInt( OS_ERROR_REPORT_OBJ.PAGE.innerHTML ),
	'SUM' : parseInt( OS_ERROR_REPORT_OBJ.SUM.innerHTML )
};
var OS_MESSAGE_MOUSE_ON = false;
var OS_MESSAGE_LIST_SCROLL_ENABLED = true;
var OS_MESSAGE_LIST_MORE_OPEN = false;
OS_ERROR_REPORT_OBJ.LIST = OS_ERROR_REPORT_OBJ.MSG.getElementsByTagName( 'li' );
OS_ERROR_REPORT_OBJ.MSG.style.width = document.body.clientWidth - 285 + 'px';
OS_ERROR_REPORT_OBJ.MSG.onmouseover = function() {
	OS_MESSAGE_MOUSE_ON = true;
};
OS_ERROR_REPORT_OBJ.MSG.onmouseout = function() {
	OS_MESSAGE_MOUSE_ON = false;
};
if( OS_MESSAGE_LIST_SCROLL_ENABLED && OS_ERROR_REPORT_VAR.SUM > 1 ) {
	OS_ERROR_MESSAGE_SCROLL_EVENT();
	// [ + ] CLICK
	OS_ERROR_REPORT_OBJ.MORE.onclick = function() {
		if( OS_MESSAGE_LIST_MORE_OPEN ) {
			OS_ERROR_REPORT_OBJ.MORE.innerHTML = '[ + ]';
			OS_ERROR_MESSAGE_SCROLL_EVENT();
			OS_ERROR_REPORT_OBJ.MSG.style.height = '20px';
			OS_MESSAGE_LIST_MORE_OPEN = false;
			OS_MESSAGE_LIST_SCROLL_ENABLED = true;
			return false;
		}
		OS_ERROR_REPORT_OBJ.MORE.innerHTML = '[ - ]';
		OS_MESSAGE_LIST_MORE_OPEN = true;
		OS_MESSAGE_LIST_SCROLL_ENABLED = false;
		OS_ERROR_REPORT_OBJ.MSG.style.height = OS_ERROR_REPORT_VAR.SUM * 22 + 'px';
	};
} else {
	OS_ERROR_REPORT_OBJ.MORE.innerHTML = '';
}
function OS_ERROR_MESSAGE_SCROLL_EVENT() {
	setTimeout( function() {
		OS_ERROR_REPORT_VAR.PAGE += 1;
		if( OS_ERROR_REPORT_VAR.PAGE > OS_ERROR_REPORT_VAR.SUM ) {
			OS_ERROR_REPORT_VAR.PAGE = 1;
		}
		OS_ERROR_REPORT_OBJ.PAGE.innerHTML = OS_ERROR_REPORT_VAR.PAGE;
		OS_ERROR_MESSAGE_SCROLL_FUNC( OS_ERROR_REPORT_OBJ.LIST[ 0 ], 0 );
	}, 4000 );
}
function OS_ERROR_MESSAGE_SCROLL_FUNC( Child, top ) {
	if( ! OS_MESSAGE_LIST_SCROLL_ENABLED ) {
		return false;
	}
	if( ! OS_MESSAGE_MOUSE_ON ) {
		top -= 2;
	}
	if( top < -20 ) {
		OS_ERROR_REPORT_OBJ.MSG.appendChild( Child );
		Child.style.marginTop = '0px';
		if( OS_MESSAGE_LIST_SCROLL_ENABLED ) {
			OS_ERROR_MESSAGE_SCROLL_EVENT();
		}
	} else {
		Child.style.marginTop = top + 'px';
		setTimeout( function() {
			OS_ERROR_MESSAGE_SCROLL_FUNC( Child, top );
		}, 80 );
	}
}
</script>